package 集合泛型练习;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;

public class 集合 {
    //本方法用于 测试collection三大集合的祖宗
    public static  void main(String[] args) {
        //1.创建Conllection相关的对象
//        Conllection conllection = new Conllection();正常的创建对象会报错,所以需要有泛型约束
        Collection<Integer> c=new ArrayList<>();
        //2.1测试 集合中的常用方法--单个集合间的操作
        c.add(100);//给collection集合添加数据操作
        c.add(200);
        System.out.println(new ArrayList(c));
        //c.clear();//会删除集合里的所有数据
        //System.out.println(c);
        System.out.println(c.hashCode());//获取集合对象的哈希值
        System.out.println(c.toString());//打印集合里的所有数据
        System.out.println(c.equals(200));//false集合对象c与值200是否相等
        System.out.println(c.contains(200));//true,查询c集合中是否包含这个指定元素200
        System.out.println(c.isEmpty());//false,判断集合是不是空的
        System.out.println(c.remove(100));//true,移除集合中的指定元素,成功返回true
        System.out.println(c);//200,上面的API移除了集合里的100
        System.out.println(c.size());//返回集合的数据个数,因为用了remove,API所以集合里的数据是1
         Object[] array=c.toArray();//将指定的集合转为数组Object[]
        System.out.println(Arrays.toString(array));//打印数组的数组
        //2.2测试多个集合间的操作
        Collection<Integer> c2= new ArrayList<>();//创建第2个集合
        c2.add(2);
        c2.add(3);
        c2.add(4);
        System.out.println(c2);

        c.addAll(c2);//把c2集合的所有元素添加到c集合中
        System.out.println(c);//会把c2集合的数据添加到c集合的尾巴那个位置
        System.out.println(c2);//c2集合的本身是不会受到影响的

        //当前集合c是否包含指定集合c2中的所有元素
        System.out.println(c.containsAll(c2));//contains,API是单个是否存在,containsAll是所有
        System.out.println(c.contains(2));//c是否包含单个指定元素
        System.out.println(c.removeAll(c2));//删除c集合里的所有c2的元素
        System.out.println(c);//删除成功
        System.out.println(c.add(5));//给集合c添加数据5
        System.out.println(c);//打印c集合

        /**
         * 迭代集合/遍历集合
         * 1.获取集合的迭代器iterator
         * 2.判断集合中是否有下一个可迭代的元素hasNext
         * 3.获取当前迭代到的元素next
         */
        Iterator<Integer> it=c.iterator();
        while (it.hasNext()){
            Integer num=it.next();
            System.out.println(num );
        }

    }

}
